package algo3.pruebas.vista;

import junit.framework.TestCase;
import algo3.modelo.Posicion;
import algo3.modelo.armas.Arma;
import algo3.modelo.armas.DisparoConvencional;
import algo3.modelo.armas.MinaSubmarinaPorContacto;
import algo3.modelo.armas.MinaSubmarinaPuntualConRetardo;
import algo3.modelo.armas.MinaSubmarinaTripleConRetardo;
import algo3.vista.armas.ReflexionVistaArma;
import algo3.vista.armas.VistaArma;
import algo3.vista.armas.VistaDisparoConvencional;
import algo3.vista.armas.VistaMinaSubmarinaPorContacto;
import algo3.vista.armas.VistaMinaSubmarinaPuntualConRetardo;
import algo3.vista.armas.VistaMinaSubmarinaTripleConRetardo;

public class ReflexionVistaArmaTest extends TestCase {
	
	public void testDevolverUnaVistaDisparoConvencional(){
		Posicion pos = new Posicion(4,5);
		Arma arma = new DisparoConvencional(pos);
		VistaArma vista = ReflexionVistaArma.obtenerVistaArmaPorReflexion("VistaDisparoConvencional", arma);
		assertEquals(vista.getClass(),VistaDisparoConvencional.class);
	}
	
	public void testDevolverUnaVistaMinaSubmarinaPorContacto(){
		Posicion pos = new Posicion(4,5);
		Arma arma = new MinaSubmarinaPorContacto(pos);
		VistaArma vista = ReflexionVistaArma.obtenerVistaArmaPorReflexion("VistaMinaSubmarinaPorContacto", arma);
		assertEquals(vista.getClass(),VistaMinaSubmarinaPorContacto.class);
	}
	
	public void testDevolverUnaVistaMinaSubmarinaTripleConRetardo(){
		Posicion pos = new Posicion(4,5);
		Arma arma = new MinaSubmarinaTripleConRetardo(pos);
		VistaArma vista = ReflexionVistaArma.obtenerVistaArmaPorReflexion("VistaMinaSubmarinaTripleConRetardo", arma);
		assertEquals(vista.getClass(),VistaMinaSubmarinaTripleConRetardo.class);
	}
	
	public void testDevolverUnaVistaMinaSubmarinaPuntualConRetardo(){
		Posicion pos = new Posicion(4,5);
		Arma arma = new MinaSubmarinaPuntualConRetardo(pos);
		VistaArma vista = ReflexionVistaArma.obtenerVistaArmaPorReflexion("VistaMinaSubmarinaPuntualConRetardo", arma);
		assertEquals(vista.getClass(),VistaMinaSubmarinaPuntualConRetardo.class);
	}
	
}
